/*
 * Commands.h
 *
 *  Created on: 14 Feb 2012
 *      Author: mohab
 */

#ifndef COMMANDS_H_
#define COMMANDS_H_

// Agent Actions
/*
 *CMD_UPD_INT AND CMD_UPD_CNF BOTH SHARE THE SAME FORMATS
 *CMD_UPD_***,mode,machine_no,state,type
 *CMD_UPD_***,mdoe,puck_no,location,type
 *CMD_UPD_***,mode,machine_no for the agent
 */
#define CMD_DISCOVER		1
#define CMD_FEED			2
#define CMD_PICK			3	//WAIT PICK & FEED // Merged with CMD_FEED for now. The "WAIT" part is a potential difference
#define CMD_UPD_INT         4   //COMMUNICATION COMMAND ABOUT THE INTENTION OF THE AGENT
#define CMD_UPD_CNF         5	//COMMUNICATION COMMAND ABOUT THE WORLD UPDATES THAT HAS ALREADY HAPPEND
#define CMD_UPD_LOC         6
#define CMD_UPD_PST         7   //Updates puck state
#define CMD_UPD_MTP         8   //Updates machine type
#define CMD_UPD_MDS         9   //Updates number of discovered machines of a certain type "m1,m2.."
// Puck States
#define PCK_S0	0
#define PCK_S1	1
#define PCK_S2	2
#define PCK_P	3
#define PCK_EXR	4	// Express Raw
#define PCK_EXP	5	// Express Product
#define PCK_R   6   // needs recycle
// Arena Locations
#define LOC_M0				0
#define LOC_M1				1
#define LOC_M2				2
#define LOC_M3				3
#define LOC_M4				4
#define LOC_M5				5
#define LOC_M6				6
#define LOC_M7				7
#define LOC_M8				8
#define LOC_M9				9
#define LOC_R1				10
#define LOC_R2				11
#define LOC_TEST			12
#define LOC_CONSUMMED1 		13
#define LOC_CONSUMMED2 		14
#define LOC_CONSUMMED3		15
#define LOC_LOADING_AREA	16
#define LOC_DG1				17
#define LOC_DG2				18
#define LOC_UNK             19 //when the puck is with a robot
#define LOC_START           20 //start location
#endif /* COMMANDS_H_ */
